#!/bin/bash

#需求：实时监控本机内存和硬盘的剩余空间，剩余内存小于500M时、根剩余空间小于1000M时，发送报警邮件给管理员

#1.获取剩余内存
free_memory=`free -m |awk 'NR==2{print $4}'`

#2.获取剩余磁盘空间
free_hard=`df -BM |awk 'NR==6{print $4}'` |sed 's/M//'

#3.如果内存和硬盘空间达到阈值，发送邮件
if [ $free_memory -le 500 ];then
                #写邮件
                echo "当前可用内存是：$free_memoryM" >> /tmp/messages.txt
                echo "当前内存不足，请转进维护服务器" >> /tmp/messages.txt

                #发邮件
                mail -s "当前可用内存是$free_memotyM"  libai@163.com < /tmp/messages.txt
fi

if [ $free_hard -le 1000 ];then
        #写邮件
        echo "当前可用硬盘是：$free_hardM" >> /tmp/messages.txt
        echo "当前硬盘空间不足，请抓紧时间维护" >> /tmp/messages.txt

        #发邮件
        mail -s "当前可用硬盘空间是$free_memotyM"  libai@163.com < /tmp/messages.txt
fi

#邮件地址 配置为 libai@163.com,要提前配好。配置文件是/etc/mail.rc
将脚本加入定时任务，每3分钟执行一次
通过如下命令进入定时任务的编辑文件中：
 crontab -e
#添加如下内容
* /3 * * * * bash /root/free.sh